﻿Imports System.Data.SqlClient

Public Class clsCatalogo

    Private mProd_Id As Int32
    Private mMarca As String
    Private mModelo As String
    Private mCantidad As Int32
    Private mProveedor As String
    Private mCosto As Decimal
    Private mDescripcion As String
    Private mTipo As String
    Private mFecha_ingreso As Date
    Private mCod_Suc As Int32


    '/////////////////////////////////////////////////////////
    '/ Propiedades
    '/////////////////////////////////////////////////////////


    Public Property Prod_Id() As Int32
        Get
            Return mProd_Id
        End Get
        Set(ByVal value As Int32)
            If value > 0 And value < 2000000000 Then
                mProd_Id = value
            Else
                Throw New Exception("No se puede utilizar el código del producto.")
            End If
        End Set
    End Property

    Public Property Marca() As String
        Get
            Return mMarca
        End Get
        Set(ByVal value As String)
            If value.Trim.Length <= 20 Then
                mMarca = value.Trim.ToUpper
            Else
                Throw New Exception("No se puede utilizar la marca del producto. Nombre demasiado largo.")
            End If
        End Set
    End Property
    Public Property Modelo() As String
        Get
            Return mModelo
        End Get
        Set(ByVal value As String)
            If value.Trim.Length <= 20 Then
                mModelo = value.Trim.ToUpper
            Else
                Throw New Exception("No se puede utilizar el modelo del producto. Nombre demasiado largo.")
            End If
        End Set
    End Property

    Public Property Cantidad() As Int32
        Get
            Return mCantidad
        End Get
        Set(ByVal value As Int32)
            If value >= 0 Then
                mCantidad = value
            Else
                Throw New Exception("No se puede utilizar la cantidad del producto. La cantidad de productos debe ser mayor a cero (0).")
            End If
        End Set
    End Property
    Public Property Proveedor() As String
        Get
            Return mProveedor
        End Get
        Set(ByVal value As String)
            If value.Trim.Length <= 20 Then
                mProveedor = value.Trim.ToUpper
            Else
                Throw New Exception("No se puede utilizar el proveedor del producto. Nombre demasiado largo.")
            End If
        End Set
    End Property

    Public Property Costo() As Decimal
        Get
            Return mCosto
        End Get
        Set(ByVal value As Decimal)
            If value > 0 Then
                mCosto = value
            Else
                Throw New Exception("No se puede utilizar el costo del producto. El costo del producto debe ser mayor a cero (0).")
            End If
        End Set
    End Property
    Public Property Descripcion() As String
        Get
            Return mDescripcion
        End Get
        Set(ByVal value As String)
            If value.Trim.Length <= 100 Then
                mDescripcion = value.Trim.ToUpper
            Else
                Throw New Exception("No se puede utilizar la descripcion del producto. Nombre demasiado largo.")
            End If
        End Set
    End Property
    Public Property Tipo() As String
        Get
            Return mTipo.Trim.ToUpper
        End Get
        Set(ByVal value As String)
            If value.Trim.Length > 0 And value.Trim.Length <= 20 Then
                mTipo = value.Trim.ToUpper
            Else
                Throw New Exception("No se puede utilizar el tipo del producto.")
            End If
        End Set
    End Property
    Public Property Fecha_Ingreso() As Date
        Get
            Return mFecha_ingreso
        End Get
        Set(ByVal value As Date)
            mFecha_ingreso = value
        End Set
    End Property

    Public Property Cod_Suc() As Int32
        Get
            Return mCod_Suc
        End Get
        Set(ByVal value As Int32)
            If value > 0 And value < 2000000000 Then
                mCod_Suc = value
            Else
                Throw New Exception("Codigo de sucursal incorrecto")
            End If
        End Set
    End Property
    '/////////////////////////////////////////////////////////
    '/ Métodos de la Clase
    '/////////////////////////////////////////////////////////

    '---------------------------------------------------------------------
    ' Constructor de la Clase
    '---------------------------------------------------------------------
    Public Sub New()

        MyBase.New()

    End Sub
    '---------------------------------------------------------------------
    ' Destructor de la Clase
    '---------------------------------------------------------------------
    Public Sub Dispose()

        MyBase.Finalize()

    End Sub

End Class
